package com.example.oa.service;

import com.example.oa.dto.ApproveApprovalProcessDTO;
import com.example.oa.dto.CreateApprovalProcessDTO;
import com.example.oa.dto.QueryApprovalProcessDTO;
import com.example.oa.dto.SubmitApprovalProcessDTO;
import com.example.oa.entity.ApprovalProcessDO;
import java.util.List;

/**
 * <p>
 * OA流程流转Service接口
 * </p>
 * @author 34448
 */
public interface ApprovalProcessService {

    /**
     * 创建审批流程
     * @param createDTO 创建审批流程DTO
     * @return 是否创建成功
     */
    Boolean createApprovalProcess(CreateApprovalProcessDTO createDTO);

    /**
     * 提交审批流程
     * @param submitDTO 提交审批流程DTO
     * @return 是否提交成功
     */
    Boolean submitApprovalProcess(SubmitApprovalProcessDTO submitDTO);

    /**
     * 审批流程
     * @param approveDTO 审批流程DTO
     * @return 是否审批成功
     */
    Boolean approveApprovalProcess(ApproveApprovalProcessDTO approveDTO);

    /**
     * 查询审批流程
     * @param queryDTO 查询审批流程DTO
     * @return 审批流程列表
     */
    List<ApprovalProcessDO> queryApprovalProcesses(QueryApprovalProcessDTO queryDTO);

    /**
     * 删除审批流程
     * @param processId 流程ID
     * @return 是否删除成功
     */
    Boolean deleteApprovalProcess(Integer processId);
}